// 导入模块
import Request from 'luch-request'
import {
	useUsercodeStore
} from '@/store/usercode.js'

// 实例化网络请求
const http = new Request({
	// 接口基地址
	baseURL: 'https://card.wm2177.com/',
})
// 请求拦截器
http.interceptors.request.use(
	function(config) {
		const userCodeStore = useUsercodeStore()
		// 显示加载状态提示
		// console.log('confit');
		// console.log(config.custom.loading);
		// if (config.custom.loading) {
		uni.showLoading({
			title: '正在加载...',
			mask: true
		})
		// }

		// 定义头信息，并保证接口调用传递的头信息
		// 能够覆盖在拦截器定义的头信息
		config.header = {
			'user-id': userCodeStore.usercode.userId,
			'token': userCodeStore.usercode.token,
			// 'user-id': "KCkQ+v+hPWcTjW0n4PbSNHHZ7iDk7nQuIKU8IFd9+Ck=",
			// 'token': "bfDK2aySY6ZO99vDvOUxChD1a+aIw43w199xTIweKjw0jPJNd7VUoMqL5sJmhmMoIWWscGUWJsz6P6PPpiNLoA==",
			...config.header,
		}

		return config
	},
	function(error) {
		return Promise.reject(error)
	}
)

// 响应拦截器
http.interceptors.response.use(
	function({
		statusCode,
		data,
		config
	}) {
		const userCodeStore = useUsercodeStore()
		// 隐藏加载状态提示
		uni.hideLoading()
		// 没登录
		if (data.st == 401 && !userCodeStore.usercode.userId) {
			uni.utils.toast("请先登录")
			setTimeout(() => {
				uni.navigateTo({
					url: `/pages/login/login`,
				})
			}, 2000)
		}
		// 账号封了
		if (data.st == 403) {
			uni.utils.toast(data.msg)
		}
		//token过期
		if (data.st == 402 && userCodeStore.usercode.userId) {
			uni.utils.toast(data.msg)
			userCodeStore.delUsercode()
			setTimeout(() => {
				uni.navigateTo({
					url: `/pages/login/login`,
				})
			}, 2000)
		}
		// 解构出响应主体
		return data
	},
	function(error) {
		return Promise.reject(error)
	}
)

// 导出配置好的模网络模块
export {
	http
}